﻿using System;
	namespace Tasler.SQLite
{
	[Flags]
	public enum SQLiteExtendedResultCode
	{
		IoErrRead              = (SQLiteResultCode.IoErr      |  (1<<8)),
		IoErrShortRead         = (SQLiteResultCode.IoErr      |  (2<<8)),
		IoErrWrite             = (SQLiteResultCode.IoErr      |  (3<<8)),
		IoErrFileSync          = (SQLiteResultCode.IoErr      |  (4<<8)),
		IoErrDirFileSync       = (SQLiteResultCode.IoErr      |  (5<<8)),
		IoErrTruncate          = (SQLiteResultCode.IoErr      |  (6<<8)),
		IoErrFileStat          = (SQLiteResultCode.IoErr      |  (7<<8)),
		IoErrUnlock            = (SQLiteResultCode.IoErr      |  (8<<8)),
		IoErrReadLock          = (SQLiteResultCode.IoErr      |  (9<<8)),
		IoErrDelete            = (SQLiteResultCode.IoErr      | (10<<8)),
		IoErrBlocked           = (SQLiteResultCode.IoErr      | (11<<8)),
		IoErrNoMemory          = (SQLiteResultCode.IoErr      | (12<<8)),
		IoErrAccess            = (SQLiteResultCode.IoErr      | (13<<8)),
		IoErrCheckReservedLock = (SQLiteResultCode.IoErr      | (14<<8)),
		IoErrLock              = (SQLiteResultCode.IoErr      | (15<<8)),
		IoErrClose             = (SQLiteResultCode.IoErr      | (16<<8)),
		IoErrDirClose          = (SQLiteResultCode.IoErr      | (17<<8)),
		IoErrShmOpen           = (SQLiteResultCode.IoErr      | (18<<8)),
		IoErrShmSize           = (SQLiteResultCode.IoErr      | (19<<8)),
		IoErrShmLock           = (SQLiteResultCode.IoErr      | (20<<8)),
		IoErrShmMap            = (SQLiteResultCode.IoErr      | (21<<8)),
		IoErrSeek              = (SQLiteResultCode.IoErr      | (22<<8)),
		IoErrDeleteNoEnt       = (SQLiteResultCode.IoErr      | (23<<8)),
		IoErrMMap              = (SQLiteResultCode.IoErr      | (24<<8)),
		IoErrGetTempPath       = (SQLiteResultCode.IoErr      | (25<<8)),
		IoErrConvPath          = (SQLiteResultCode.IoErr      | (26<<8)),
		LockedSharedCache      = (SQLiteResultCode.Locked     |  (1<<8)),
		BusyRecovery           = (SQLiteResultCode.Busy       |  (1<<8)),
		BusySnapshot           = (SQLiteResultCode.Busy       |  (2<<8)),
		CantOpenNoTempDir      = (SQLiteResultCode.CantOpen   |  (1<<8)),
		CantOpenIsDir          = (SQLiteResultCode.CantOpen   |  (2<<8)),
		CantOpenFullPath       = (SQLiteResultCode.CantOpen   |  (3<<8)),
		CantOpenConvpath       = (SQLiteResultCode.CantOpen   |  (4<<8)),
		CorruptVTab            = (SQLiteResultCode.Corrupt    |  (1<<8)),
		ReadOnlyRecovery       = (SQLiteResultCode.ReadOnly   |  (1<<8)),
		ReadOnlyCantLock       = (SQLiteResultCode.ReadOnly   |  (2<<8)),
		ReadOnlyRollback       = (SQLiteResultCode.ReadOnly   |  (3<<8)),
		ReadOnlyDbMoved        = (SQLiteResultCode.ReadOnly   |  (4<<8)),
		AbortRollback          = (SQLiteResultCode.Abort      |  (2<<8)),
		ConstraintCheck        = (SQLiteResultCode.Constraint |  (1<<8)),
		ConstraintCommitHook   = (SQLiteResultCode.Constraint |  (2<<8)),
		ConstraintForeignKey   = (SQLiteResultCode.Constraint |  (3<<8)),
		ConstraintFunction     = (SQLiteResultCode.Constraint |  (4<<8)),
		ConstraintNotNull      = (SQLiteResultCode.Constraint |  (5<<8)),
		ConstraintPrimaryKey   = (SQLiteResultCode.Constraint |  (6<<8)),
		ConstraintTrigger      = (SQLiteResultCode.Constraint |  (7<<8)),
		ConstraintUnique       = (SQLiteResultCode.Constraint |  (8<<8)),
		ConstraintVtab         = (SQLiteResultCode.Constraint |  (9<<8)),
		ConstraintRowId        = (SQLiteResultCode.Constraint | (10<<8)),
		NoticeRecoverWal       = (SQLiteResultCode.Notice     |  (1<<8)),
		NoticeRecoverRollback  = (SQLiteResultCode.Notice     |  (2<<8)),
		WarningAutoIndex       = (SQLiteResultCode.Warning    |  (1<<8))
	}
}
